package com.example.fw;

import java.io.IOException;
import java.util.Properties;

public class ApplicationManager {
	
	private Properties props;
	private ContactHelper contactHelper;
	private ProcessHelper processHelper;
	private AutoItHelper autoItHelper;
	private static ApplicationManager singleton;
	
	public static ApplicationManager getInstance(Properties props) throws IOException{
	if (singleton == null)
		{singleton = new ApplicationManager();
		singleton.setProperties(props);
		singleton.start();}
	return singleton;
	}
	
	public void start() throws IOException{ 
		getProcessHelper().startAppUnderTest();
	}
	
	
	public void stop(){ 
		getProcessHelper().stopAppUnderTest();
	}
	
	public void setProperties (Properties props){
		this.props = props;
	}
	
	public String setProperty (String key){
		return props.getProperty(key);
	}
	
	public String getProperty (String key){
		return props.getProperty(key);
	}

	public ProcessHelper getProcessHelper() {
		if (processHelper == null){
			processHelper  = new ProcessHelper(this);
	}
	return processHelper;
	}
	
	public ContactHelper getContactHelper() {
		if (contactHelper == null){
		contactHelper  = new ContactHelper(this);
	}
	return contactHelper;
	}
	
	public AutoItHelper getAutoItHelper() {
		if (autoItHelper == null){
			autoItHelper = new AutoItHelper(this);
	}
	return autoItHelper;
	}

	
}